/*
 * Copyright 2010-2018 JetBrains s.r.o.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package org.jetbrains.kotlin.gradle.plugin.experimental.internal

import org.gradle.api.Project
import org.gradle.api.internal.component.UsageContext
import org.gradle.api.provider.Provider
import org.gradle.language.cpp.internal.NativeVariantIdentity
import org.jetbrains.kotlin.konan.target.KonanTarget

class KotlinNativeVariant(
    name: String,
    baseName: Provider<String>,
    group: Provider<String>,
    version: Provider<String>,
    val konanTarget: KonanTarget,
    val buildType: KotlinNativeBuildType,
    linkUsage: UsageContext?,
    runtimeUsage: UsageContext?,
    project: Project
) {

    val identity: NativeVariantIdentity = compatibleVariantIdentity(
        project,
        name,
        baseName,
        group,
        version,
        buildType.debuggable,
        buildType.optimized,
        konanTarget,
        linkUsage,
        runtimeUsage
    )

    val targetPlatform = DefaultKotlinNativePlatform(konanTarget)
}